import java.util.Scanner;

public class Array {
    public static void main(String[] args) {
        double[] hens={3,5,1,3.4,2,50};
        double avg=0;
        double sum=0;
        for (int i =0;i<hens.length;i++){
            sum += hens[i];
        }
        avg = sum / hens.length ;

        //
        int a[] = new int[3]; //初始化后，数组a中的默认值为0
        double scores[] = new  double[5];
        Scanner scanner = new Scanner(System.in);
        for (int i=0;i<scores.length;i++){
            System.out.println("请输入第"+ (i+1) + "个元素的值");
            scores[i] = scanner.nextDouble();
        }

        for (int i=0;i<scores.length;i++){
            System.out.println("第"+ (i+1) + "个元素的值="+scores[i]);
        }

        int n1=10; //n1是基础数据类型，放在栈里
        int n2=n1; //把n1的值复制一份，赋给n2
        n2=80; // 在栈里找到n2，把80赋给n2

        // 数组在默认情况下是引用传递，赋的值是地址，赋值方式为引用传达
        int[] arr1={1,2,3};  //arr1是一个地址，存放在栈里，这个地址指向堆里的一个空间
        int[] arr2=arr1; // 把arr1这个地址复制一份，赋值给arr2，此时arr2也指向堆里的这个空间
        // 此时arr1和arr2指向同一个地址，arr2的变化会影响arr1
        arr2[0]=10;
        for (int i=0;i<arr1.length;i++){
            System.out.println(arr1[i]);
        }

        // 数组拷贝(内容复制),要求2个数组的数据空间是独立的
        int[] arr3={10,20,30};
        //先创建一个新的数组arr4,开辟新的数据空间，大小和arr3一样
        int[] arr4=new int[arr3.length];
        for (int i=0;i<arr3.length;i++){
            arr4[i]=arr3[i];
        }

        //
    }
}
